home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / SASETUP.MSI / F77569_sh_tree.asp < prev    next >
Encoding:
Text File  |  2003-02-21  |  7.3 KB  |  281 lines

  1. <%
  2.     '-------------------------------------------------------------------------
  3.     ' Server Appliance Web Framework Tree Widget
  4.     ' Copyright (c) Microsoft Corporation.  All rights reserved.
  5.     '-------------------------------------------------------------------------
  6.     Call SAI_EnablePageCaching(TRUE)
  7. %>
  8.     <!-- #include file="inc_framework.asp" -->
  9. <%
  10.  
  11.     If Len(Trim(Request.QueryString("TreeContainer"))) > 0 Then
  12.         Call SA_RenderTree(Request.QueryString("TreeContainer"))
  13.     End If
  14.  
  15.     
  16. Function SA_RenderTree(ByVal sContainer)
  17.     
  18.     Call SA_TreeEmitPageHeader()
  19.     Response.Write("<table><tr><td nowrap>")
  20.     Call WriteLine("<form name='frmTreeWidget' method='post' action=""sh_tree.asp?TreeContainer="+Server.URLEncode(sContainer)+""" >")
  21.     
  22.     Call SA_RenderTreeNodes(sContainer, "" )
  23.     
  24.     Call WriteLine("<input type='hidden' name='" & SAI_FLD_PAGEKEY & "' value='" & SAI_GetPageKey() & "' >")
  25.     Call WriteLine("<input type='hidden' name=fieldSelectedElement value='"+Request.Form("fieldSelectedElement")+"' >")
  26.     Call WriteLine("<input type='hidden' name=fieldImageLeaf value='"+GetImageParam("fieldImageLeaf")+"' >")
  27.     Call WriteLine("<input type='hidden' name=fieldImageNodeOpened value='"+GetImageParam("fieldImageNodeOpened")+"' >")
  28.     Call WriteLine("<input type='hidden' name=fieldImageNodeClosed value='"+GetImageParam("fieldImageNodeClosed")+"' >")
  29.     Call WriteLine("</form>")
  30.     Response.Write("</td></tr></table>")
  31.     
  32.     Call SA_TreeEmitPageFooter()
  33. End Function
  34.  
  35.  
  36.  
  37. Function SA_RenderTreeNodes(ByVal sContainer, ByVal sSelectedHelpTOC)
  38.     On Error Resume Next
  39.     Err.Clear
  40.  
  41.     Dim oContainer
  42.     Dim oElement
  43.     Dim sHelpLoc
  44.     Dim bIsContainer
  45.     Dim sCurrentElementID
  46.  
  47.     sCurrentElementID = Request.Form("fieldSelectedElement")
  48.     
  49.     Set oContainer = GetElements(sContainer)
  50.     If ( Err.Number <> 0 ) Then
  51.         Call SA_TraceOut("SH_TREE", "GetElements("+sContainer+") returned error: " + CStr(Hex(Err.Number)) )
  52.         Err.Clear
  53.         Exit Function
  54.     End If
  55.  
  56.     Call SA_GetHelpRootDirectory(sHelpLoc)
  57.  
  58.     If ( oContainer.Count > 0 ) Then
  59.         WriteLine("<DIV class=HelpTOCItem>")
  60.         
  61.         For each oElement in oContainer
  62.             Dim sImageURL
  63.             Dim sCaption
  64.             Dim sHelpURL
  65.             Dim sOnClickHandler
  66.             Dim sClassAttribute
  67.             Dim F_IsLeafSelected
  68.             Dim ElementID
  69.  
  70.             ElementID = oElement.GetProperty("ElementID")
  71.             
  72.             F_IsLeafSelected = Request.Form(ElementID)
  73.             If ( Trim(F_IsLeafSelected) <> "1" ) Then
  74.                 F_IsLeafSelected = "0"
  75.             End If
  76.  
  77.             sHelpURL = sHelpLoc+oElement.GetProperty("URL")
  78.  
  79.             If ( SA_IsParentNode(ElementID) ) Then
  80.                 bIsContainer = TRUE
  81.                 If ( Int(F_IsLeafSelected) > 0 ) Then
  82.                     sImageURL = GetImageParam("fieldImageNodeClosed")
  83.                 Else
  84.                     sImageURL = GetImageParam("fieldImageNodeOpened")
  85.                 End If
  86.                 
  87.                 sOnClickHandler = "onClick=""return SA_OnTreeClick('"+sHelpURL+"', '"+ElementID+"' );"" "
  88.                 WriteLine("<input type=hidden value='"+F_IsLeafSelected+"' name='"+ElementID+"' >")
  89.                 
  90.                 If ( (ElementID = sCurrentElementID) ) Then
  91.                     sClassAttribute=" class='ActiveTreeNode' "
  92.                 Else
  93.                     sClassAttribute=" class='InActiveTreeNode' "
  94.                 End If
  95.             Else
  96.                 bIsContainer = FALSE
  97.                 sImageURL = GetImageParam("fieldImageLeaf")
  98.                 sOnClickHandler = "onClick=""return SA_OnTreeClick('"+sHelpURL+"', '"+ElementID+"' );"" "
  99.                 WriteLine("<input type=hidden value='0' name='"+ElementID+"' >")
  100.                 
  101.                 If ( F_IsLeafSelected ) Then
  102.                     sClassAttribute=" class='ActiveTreeNode' "
  103.                 Else
  104.                     sClassAttribute=" class='InActiveTreeNode' "
  105.                 End If
  106.             End If
  107.  
  108.             
  109.             sCaption = GetLocString(oElement.GetProperty("Source"), oElement.GetProperty("CaptionRID"), "" )
  110.  
  111.             WriteLine("<SPAN ")
  112.             WriteLine(sClassAttribute)
  113.             WriteLine(sOnClickHandler)
  114.             WriteLine(" >")
  115.             WriteLine("<img src='"+sImageURL+"' >")
  116.             WriteLine(sCaption)
  117.             WriteLine("</SPAN><BR>")
  118.             
  119.             If ( bIsContainer ) Then
  120.                 If ( Int(F_IsLeafSelected) > 0 ) Then
  121.                     Call SA_RenderTreeNodes(ElementID, "")
  122.                 End If
  123.             End If
  124.             
  125.         Next
  126.         WriteLine("</DIV>")
  127.     End If
  128.  
  129. End Function
  130.  
  131. Function SA_IsParentNode(ByVal sContainer)
  132.     On Error Resume Next
  133.     Err.Clear
  134.     
  135.     SA_IsParentNode = FALSE
  136.     Dim oContainer
  137.     
  138.     Set oContainer = GetElements(sContainer)
  139.     If ( Err.Number <> 0 ) Then
  140.         Call SA_TraceOut("SH_TREE", "GetElements("+sContainer+") returned error: " + CStr(Hex(Err.Number)) )
  141.         Err.Clear
  142.         Exit Function
  143.     End If
  144.  
  145.     If ( oContainer.Count > 0 ) Then
  146.         'Call SA_TraceOut("SH_TREE", "Container: " + sContainer + " contains " + CStr(oContainer.Count) + " elements.")
  147.         SA_IsParentNode = TRUE
  148.     End If
  149.  
  150.     Set oContainer = nothing
  151. End Function
  152.  
  153.  
  154. Function GetHelpLoc()
  155.     GetHelpLoc = "help" + "/"
  156. End Function
  157.  
  158.  
  159. Function SA_TreeEmitPageHeader()
  160. %>
  161.     <html>
  162.     <!-- Web Framework End User Help  -->
  163.     <!-- Copyright (c) Microsoft Corporation.  All rights reserved.-->
  164.     <head>
  165.     <meta http-equiv="Content-Type" content="text/html; charset=<%=GetCharSet()%>">
  166.     <%
  167.     Call SA_EmitAdditionalStyleSheetReferences("")
  168.     %>
  169.     <script language="JavaScript" src="<%=m_VirtualRoot%>sh_page.js"></script>
  170.     <script>
  171.     function SA_OnTreeClick(sHelpURL, sElementID)
  172.     {
  173.         //
  174.         // Show the HELP page
  175.         var i;
  176.         
  177.         //alert("SA_OnTreeClick("+sHelpURL+")");
  178.         
  179.         sHelpURL = SA_MungeURL(sHelpURL, SAI_FLD_PAGEKEY, g_strSAIPageKey);
  180.         parent.IFrameHelpContent.location = sHelpURL;
  181.         
  182.  
  183.         //
  184.         // Expand the tree
  185.         if ( sElementID.length > 0 )
  186.         {
  187.             var i, j;
  188.  
  189.             for( i = 0; i < window.document.forms.length; i++ )
  190.             {
  191.                 //
  192.                 // Locate the Tree Widget FORM
  193.                 if ( window.document.forms[i].name == 'frmTreeWidget' )
  194.                 {
  195.  
  196.                     //
  197.                     // Locate the selected tree NODE
  198.                     for( j = 0; j < window.document.forms[i].elements.length; j++)
  199.                     {
  200.                         if ( window.document.forms[i].elements[j].name == 'fieldSelectedElement' )
  201.                         {
  202.                             //
  203.                             // Store the currently selected element id
  204.                             //
  205.                             window.document.forms[i].elements[j].value = sElementID;
  206.                         }
  207.                         else if ( window.document.forms[i].elements[j].name == sElementID )
  208.                         {
  209.                             //
  210.                             // Toggle the selection state
  211.                             //
  212.                             if (window.document.forms[i].elements[j].value == '1')
  213.                             {
  214.                                 window.document.forms[i].elements[j].value = '0';
  215.                             }
  216.                             else
  217.                             {
  218.                                 window.document.forms[i].elements[j].value = '1';
  219.                             }
  220.                         }
  221.                     }
  222.                     window.document.forms[i].submit();
  223.                 }
  224.             }
  225.         }
  226.         return true;
  227.     }
  228.     </script>
  229.     </head>
  230.     <body>
  231. <%    
  232.  
  233. End Function
  234.  
  235. Function SA_TreeEmitPageFooter()
  236. %>
  237.     </body>
  238.     </html>
  239. <%    
  240. End Function
  241.  
  242.  
  243. Function WriteLine(ByRef sLine)
  244.     Response.Write(sLine+vbCrLf)
  245. End Function
  246.  
  247.  
  248. Private Function GetImageParam(ByVal sWhichImage)
  249.     Dim sImage
  250.     
  251.     Select Case (UCase(sWhichImage))
  252.         Case UCase("fieldImageLeaf")
  253.             sImage = Request("fieldImageLeaf")
  254.             If ( Len(sImage) <= 0 ) Then
  255.                 sImage = "images/book_page.gif"
  256.             End If
  257.             
  258.         Case UCase("fieldImageNodeOpened")
  259.             sImage = Request("fieldImageNodeOpened")
  260.             If ( Len(sImage) <= 0 ) Then
  261.                 sImage = "images/book_closed.gif"
  262.             End If
  263.             
  264.         Case UCase("fieldImageNodeClosed")
  265.             sImage = Request("fieldImageNodeClosed")
  266.             If ( Len(sImage) <= 0 ) Then
  267.                 sImage = "images/book_opened.gif"
  268.             End If
  269.  
  270.         Case Else
  271.             sImage = Request("fieldImageLeaf")
  272.             If ( Len(sImage) <= 0 ) Then
  273.                 sImage = "images/book_page.gif"
  274.             End If
  275.     End Select
  276.  
  277.     GetImageParam = sImage
  278. End Function
  279.  
  280. %>
  281.